Conventionally, most computational tasks are undertaken upon a client or within a proprietary intranet. For instance, through utilization of a software application resident upon the client, data is created, manipulated, and saved upon a hard drive of the client or on an on-site server. Access to this data is often controlled through the use of access control lists (ACLs).
An ACL can be defined by a set of data associated with a file, directory or other network resource that defines the permissions that users, groups, processes or devices have for accessing it. In one example, an ACL is defined by a table that tells a computer operating system which access rights each user has with respect to a particular system object, such as a file directory or individual file. Each object can have a security attribute that identifies its access control list. The list can include an entry for each system user that has access privileges. The most common privileges include the ability to read a file (or all the files in a directory), to write to the file or files, and to execute the file (if it is an executable file, or program). Of course, the ACL can be implemented differently by each operating system.
Client-side operating systems are employed to manage relationships between users, software applications, and hardware within a client machine, as well as data that is resident upon a connected intranet. The conventional computing paradigm is beginning to shift, however, as maintaining security, indexing data, and the like on each client device can be quite expensive.
As network connectivity has continued to improve, it has become apparent that a more efficient computing model includes lightweight (e.g., inexpensive) clients that continuously communicate with third-party computing devices to achieve substantially similar end results when compared to the conventional computing paradigm. In accordance with this architecture, the third-party can provide a ‘cloud’ of data, devices and services, such that requests by several clients can simultaneously be serviced within the cloud without the user noticing any degradation in computing performance.